package org.dromara.business.domain.bo;

import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.business.domain.VolunteerDetails;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

/**
 * 志愿者详细信息业务对象 volunteer_details
 *
 * @author zlj
 * @date 2025-01-18
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = VolunteerDetails.class, reverseConvertGenerate = false)
public class VolunteerDetailsBo extends BaseEntity {

    /**
     * 用户ID
     */
    @NotNull(message = "用户ID不能为空", groups = { EditGroup.class })
    private Long userId;

    /**
     * 姓名
     */
    @NotBlank(message = "姓名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String name;

    /**
     * 性别
     */
//    @NotBlank(message = "性别不能为空", groups = { AddGroup.class, EditGroup.class })
    private String sex;

    /**
     * 年龄
     */
//    @NotNull(message = "年龄不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long age;

    /**
     * 民族
     */
//    @NotBlank(message = "民族不能为空", groups = { AddGroup.class, EditGroup.class })
    private String nationality;

    /**
     * 联系方式
     */
//    @NotBlank(message = "联系方式不能为空", groups = { AddGroup.class, EditGroup.class })
    private String tel;

    /**
     * 工作单位
     */
//    @NotBlank(message = "工作单位不能为空", groups = { AddGroup.class, EditGroup.class })
    private String workUnit;

    /**
     * 政治面貌
     */
//    @NotBlank(message = "政治面貌不能为空", groups = { AddGroup.class, EditGroup.class })
    private String politicalStatus;

    /**
     * 家庭所在区
     */
//    @NotBlank(message = "家庭所在区不能为空", groups = { AddGroup.class, EditGroup.class })
    private String community;

    /**
     * 婚姻状况
     */
//    @NotBlank(message = "婚姻状况不能为空", groups = { AddGroup.class, EditGroup.class })
    private String maritalStatus;

    /**
     * 孩子性别
     */
//    @NotBlank(message = "孩子性别不能为空", groups = { AddGroup.class, EditGroup.class })
    private String childrenSex;

    /**
     * 孩子数量
     */
//    @NotNull(message = "孩子数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long childrenNum;

    /**
     * 是否注册为企事业单位
     */
//    @NotBlank(message = "是否注册为企事业单位不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isEnterprises;

    /**
     * 是否做过志愿
者
     */
//    @NotBlank(message = "是否做过志愿者不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isVolunteer;

    /**
     * 是否加入过社

会组织
     */
//    @NotBlank(message = "是否加入过社会组织不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isSociety;

    /**
     * 是否做过志愿者
     */
//    @NotBlank(message = "是否做过志愿者不能为空", groups = { AddGroup.class, EditGroup.class })
    private String societyInfo;

    /**
     * 是否对中华优秀传统文化感兴趣
     */
//    @NotBlank(message = "是否对中华优秀传统文化感兴趣不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isTradition;

    /**
     * 哪本中华优秀传统文化书籍对自己有较大影响
     */
//    @NotBlank(message = "哪本中华优秀传统文化书籍对自己有较大影响不能为空", groups = { AddGroup.class, EditGroup.class })
    private String traditionInfo;

    /**
     * 是否有信仰
     */
//    @NotBlank(message = "是否有信仰不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isBelief;

    /**
     * 信仰内容
     */
//    @NotBlank(message = "信仰内容不能为空", groups = { AddGroup.class, EditGroup.class })
    private String belief;

    /**
     * 提供的帮助
     */
//    @NotBlank(message = "提供的帮助不能为空", groups = { AddGroup.class, EditGroup.class })
    private String helpNeeds;

    /**
     * 帮助详情
     */
//    @NotBlank(message = "帮助详情不能为空", groups = { AddGroup.class, EditGroup.class })
    private String helpNeedsInfo;

    /**
     * 对于帮扶同一个孩子的志愿者能否接受线下聚会
     */
//    @NotBlank(message = "对于帮扶同一个孩子的志愿者能否接受线下聚会不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isParty;
    // 图片
    private String picture;

    // 状态  1:待审核 2:审核通过 3:审核失败
//    @ExcelProperty(value = "状态")
    private String state;


}
